array(5,5) Real mat
array(5) Real mean
array(5) Partition p
Partition real 
array(5) Partition selected
array(5) Partition cr
Int best
Int i

real = "real.clu"  // CHANGE: uso de aspas

for(file f: "dir") {  // CHANGE: uso de aspas no dir
	p.add (f) 
}

mat = calcCR(p)

forall i (0, p.size()) {
	// findSimilar retorna uma lista de indices de particoes semelhantes a p[i]. Neste caso, procura-se toda particao p[j] identica a p[i] pois o CR entre p[i] e p[j] deve ser igual a 1.
	// delete pode remover um ou mais elementos do array.
	p.delete(findSimilar(mat, i, 1))
}

mean = calcMean(p)

// enquanto existe objeto em p (p não é vazio)
for (p) {
	best = highestCR(mean) 
	selected.add(p[best])
	p.delete(findSimilar(mat, best, 0.9))
	p.delete([best]) // CHANGE: uso de [] em volta do valor inteiro para indicar índice
}

cr = calcCR(real, selected)

forall i (0, selected.size()) { 
	print (selected[i], " ", cr[i], "\n")
}
